/**
 * Project Name:pay-service
 * File Name:XmlUtils.java
 * Package Name:com.creativearts.common.pay.payservice.haibao.component
 * Date:2018年10月26日下午3:13:01
 * Copyright (c) 2018, wangzhch All Rights Reserved.
 *
*/

package com.libra.service.utils;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;

/**
 * ClassName:XmlUtils <br/>
 * Date:     2018年10月26日 下午3:13:01 <br/>
 * @author   wangzhch
 * @version  
 * @since    JDK 1.8
 * @see 	 
 */
public class XmlUtils {
	private static Logger log = LoggerFactory.getLogger(XmlUtils.class);
	
	/**
	 * 
	 * createXmlFile:(给模板填值). <br/>
	 * @author wangzhch
	 * @param xmlPath
	 *            xml模板的路径
	 * @param xmlName
	 *            xml模板的名称
	 * @param code
	 *            数据编码格式
	 * @param dataMap
	 *            需要渲染到xml中的map数据
	 * @return
	 * @since JDK 1.8
	 */
	public static String createXmlFile(String xmlPath, String xmlName, String code, Map dataMap){
		try {
			// 创建Configuration对象
			Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
			//模板路径
			cfg.setDirectoryForTemplateLoading(new File(xmlPath));
			cfg.setDefaultEncoding("UTF-8");
			cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

			//模板名称
			Template temp = cfg.getTemplate(xmlName);

			Writer out = new OutputStreamWriter(System.out);
			temp.process(dataMap, out);
			return out.toString();
		} catch (TemplateException e) {
			log.error("xml模板填参TemplateException异常:{}",e);
		} catch (IOException e) {
			log.error("xml模板填参IOException异常:{}",e);
		}
		return null;
	}
}

